Encender 3 leds con pulsadores en binario

¿Te funciona tal y como tú quieres? Por lo que veo creo que si mantienes activado un pulsador el ciclo hace que siga contando pasos y el ciclo de los LED no se para.

Aparte de eso yo lo habría programado haciendo un detector de flanco para cada pulsador. Ese detector de flanco suma o resta de la variable contador y a continuación sólo hay que hacer un switch del valor de ese contador.
Tu programa no es que esté mal (aparte de que siga contando pasos si mantienes activado el pulsador) pero veo más estructurado lo que te sugiero además de que está bien eso de ir practicando la programación de pulsadores y su activación en programa por flanco ya que se emplea en muchas ocasiones.