ok, being that your getting a range, you might need to have something like this.
if(button != lastState && (button2 > 20 && button2 < 50) )
{
.
.
.
}
I don't think you should be reading it as an analog signal, because now you will need to get averages of the readings to smooth them out. Stick with digital for now.