Arduino analog only reading 40 when grounded
Edit: It was not interference as such, but a poor breadboard connection to ground, and once connected more direct it reads 0 again in its full circuit.

Ok, I should have done this test first before posting my question, but I just put another new Arduino on a board by itself and it is reading 0, so it must be interference, or that board. Though I think it will be interference due to all the other wiring for a 2 line LCD.

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println(analogRead(0));
  delay(1000);
}