Debounce on a switch with variable resistance

I don't think that dividing the range of analog read values so widely is going to help debounce the multi-switch.

  if (button > 20 && button < 60){
    buttonPushed=buttonPinLeft;
  }
  else if (button > 60 && button < 100){
    buttonPushed=buttonPinEnter;
  }
  else if (button > 140 && button < 160){
    buttonPushed=buttonPinEsc; 
  }
  else if (button > 160 && button < 200){
    buttonPushed=buttonPinRight;  
  }
  else {
    buttonPushed=0;
  }

I think you want discrete intervals for a settled button press. The first two and last two are back to back. At the speed the Arduino does even analog reads you can see the voltage change before it is done changing, you can 'see the bounce'. When there's no room between two states, you will get a 'valid' state even as the state itself is changing.

If you press the Esc button and leave it for a while, do repeated analog reads fall in the range of 140 to 160 or something closer to 150?

Maybe you can find a way to widen the total range beyond 200?