Hola.
efectivamente jquery no detecta el cambio en los hidden, debes de indicarselo con la funcion change()
prueba asi:
Código HTML:
Ver original<!doctype html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
$(document).ready(function(){
$('#btn').click(function(){
$("input[name='oculto']" ).val('Adios').change();
});
$("input[name='oculto']").change(function(){
valor = $("input[name='oculto']" ).val();
alert("Cambiado a : " + valor);
});
}); //fin de ready
<input name="oculto" type="hidden" value="hola">
Saludos