Como realizar una alternancia

Buenas a todos, me gustaría realizar una alternancia entre dos leds con un solo pulsador, la verdad que ya tengo el programa hecho, pero hay veces que fallan los leds o el pulsador, les dejo el programa aquí a ver si alguien me puede echar una mano, muchas gracias.

void setup() {
pinMode(10,OUTPUT); //Salida LedRojo
pinMode(1,OUTPUT); //Salida LedVerde
pinMode(6,INPUT); // Entrada pulsador
}

int x=3;
boolean y= true;

void loop()
{

if (digitalRead(6)==HIGH && y==false){
x++;
y = true;
} else if (digitalRead(6)!=HIGH) {
y = false;
}

if ( x > 3){x=0;}

switch(x)
{
case 0:
digitalWrite(10,HIGH);
break;
case 1:
digitalWrite(10,LOW);
break;
case 2:
digitalWrite(1,HIGH);
break;
case 3:
digitalWrite(1,LOW);
break;
}
}

Esto se hace asi

// en globales 
bool valorAnt = false;
bool valor;

//en el mismo sitio del loop
 valor = digitalRead(6);
 if (valor && !valorAnt){
    x++;
 }
 valorAnt = valor;