Salida PWM y motor paso a paso

Hola tengo una arduino mega2560 y un motor paso a paso con un driver A4988 el cual controlo con un PWM por el pin STEP. Esa misma señal la leo de entrada para contar los flancos de subida y saber los pasos que da el motor y cuando da una vuelta. El codigo me funcionaba fantásticamente hasta que un dia me dio por probar a cambiar la frecuencia de la PWM para variar la velocidad del motor con la siguiente linea:

TCCR2B = TCCR2B & 0b000 | 0x02;

Bueno total que al final decidi quitar esa linea de codigo y dejarlo como estaba. Resulta que noto que recupera su frecuencia por defecto (489Hz segun he poido leer), pero desde entonces no se que ha pasado que el codigo ya no me funciona igual ya que si antes leia 200 flancos de subida por vuelta ahora se ha vuelto totalmente loco. Es curioso por que con una señal digital forzando la subida y bajada con un pequeño retardo me los lee bien pero con la pwm algo falla.

Espero que me puedan ayudar, no se si la Arduino necesita algun hard reset o algo por el estilo porque no entiendo. Gracias

Este es el cableado si sirve de ayuda