La función es:
int cuentaEscalera(int n,int vector[],int * contador,int * esEscalera);
Entero, puntero, puntero, puntero. La primera llamada la haces bien:
cuentaEscalera(0,vector,&contador,&esEscalera);
cuentaEscalera es recursiva, la vuelves a llamar desde sí misma:
cuentaEscalera(n+1,vector,&contador,&esEscalera);
Bien, ahí tienes el error. Dentro de cuentaEscalera, contador y esEscalera ya son punteros, así que en vez de pasarle un puntero, lo que estás pasándole es la dirección del puntero, es decir, un puntero a puntero. Debería ser:
cuentaEscalera(n+1,vector,contador,esEscalera);
Algunos compiladores avisan de esos posibles problemas con un warning, al menos gcc.