conmutador toggle switch de 3 posiciones para distintas funciones

Ok jose, más o menos entiendo lo que me dices, y he probado con el siguiente código:

const int buttonPin = 2;     // Pin del pulsador
const int buttonPin2 = 4;     // Pin del pulsador

void setup() { 
  // pin del pulsador de entrada
  Serial.begin(9600);
  pinMode(buttonPin, INPUT);     
  pinMode(buttonPin2, INPUT); 
}

void loop(){

  // Si el valor del pin del pulsador es HIGH es que esta pulsado
  if (digitalRead(buttonPin) == HIGH) {     
    // Se enciende el LED:    
    Serial.println("Pulsado 1");  
  } 
  else if (digitalRead(buttonPin2) == HIGH){
    // Se apaga el LED:
    Serial.println("Pulsado 2");  
  }
}

y de esta manera, si tengo el pulsado "arriba" obtengo "Pusado 1" en repetidas ocasiones... si lo pongo al "medio" también obtengo "Pulsado 1", y si lo pongo "abajo" obtengo "Pulsado 2", lo que no sé es cómo hacer para que cuando esté el pulsador arriba sea 1, cuando esté al medio sea 2 y cuando esté abajo sea 3 por ejemplo....

Gracias!