Conteo descendente en LCD 2x16

Buen día estoy trabajando en un contador de personas y tengo problemas con el conteo descendente, cuando me cuenta hasta 10 en modo ascendente y luego quiero descender a 9 me marca 90, 80,70 , como puedo solucionar esto.

void loop() {
valor2 = digitalRead(pin2); // Lee el valor del pin2 y se lo asigna a valor2. (Puede ser 0 o 1)
valor12 = digitalRead(pin12); // Lee el valor del pin12 y se lo asigna a valor12. (Puede ser 0 o 1)


if (valor2 == HIGH && valor12 == LOW && pulsadores == "")
{
pulsadores="saliendo";
}
if (valor2 == LOW && valor12 == LOW && pulsadores == "saliendo")
{
pulsadores="saliendo_mitad";
}
if (valor2 == LOW && valor12 == HIGH && pulsadores == "saliendo_mitad")
{
pulsadores="casi_salio";
}
if (valor2 == HIGH && valor12 == HIGH && pulsadores == "casi_salio")
{
pulsadores="";
cuenta=cuenta-1;
lcd.setCursor(5, 0);
lcd.print(cuenta); 
}
if (valor2 == LOW && valor12 == HIGH && pulsadores == "")
{
pulsadores="entrando";
}
if (valor2 == LOW && valor12 == LOW && pulsadores == "entrando")
{
pulsadores="entrando_mitad";
}
if (valor2 == HIGH && valor12 == LOW && pulsadores == "entrando_mitad")
{
pulsadores="casi_entro";
}
if (valor2 == HIGH&& valor12 == HIGH && pulsadores == "casi_entro")
{
pulsadores="";
cuenta=cuenta+1;
lcd.setCursor(5, 0);
lcd.print(cuenta); 


}
lcd.setCursor(1, 1);
lcd.print(pulsadores);

 delay (500);
}

momentaneamente soluciono reinicando el LCD pero no es la mejor manera

Eso te pasa porque venís imprimiedo un valor de dos dígitos ( 10 ) en una posición fija del lcd , y luego imprimís un solo digito (9 ) en la misma posición. El 10 ocupa dos posiciones, la que vos indicás y la siguiente y el 9 solo la indicada, pero la siguiente que era un cero no la borraste. Tenés varias opciones para hacerlo. Sabiendo el porqué intentá corregirlo y sinó volvé a consultar para más ayuda