I think, then, that you need to create a much smaller sketch that illustrates the problem, or makes it go away. There is so much that is not shown here.
You still have not addressed the hardware questions.
But, since I AM trying to help, I'd add a Serial.print statement after the analogRead function call, to see what you actually read.
If you have a switch attached to the pin, and you have defined the pin as an INPUT pin, the voltage at the pin is NOT variable. It's either 0 or Vref. Nothing in between. Since you are assuming that the value can be somewhere in between, and only clearing the screen if it is, I still think that the reason that lcd.clear() doesn't work is because it isn't called.
Pictures, please. Or at least a link to the hardware you have.