Problem on Project 3 Love-O-Meter

Hello.
I'm new to arduino and electronic.
I was doing a project 3 Love-O-Meter and expanded the project from 3 LED to 6 LED.
3 Red LED is to measure the hot environment and 3 Blue Led is to measure the cold environment.
But, i am facing a problems during this project and i would like to ask a few question.
My question is :

  1. Why the temperature shown in the serial monitor is sometimes unstable ?

But when i touch the sensor, the temperature increase and it become stable.

  1. Why the temperature shown the in serial monitor changed drastically when i shake or move the breadboard or arduino for a few cm ?

  1. Is the code i write to measure the cold environment is the simplest one or are there more simplest than this ?
const int sensorPin = A0;
const float baselineTemp = 27.0;

void setup()
{
  Serial.begin(9600);
  for(int pinNumber = 2; pinNumber < 8; pinNumber ++)
  {
    pinMode(pinNumber, OUTPUT);
    digitalWrite(pinNumber, LOW);
  }
}

void loop()
{
  int sensorVal = analogRead(sensorPin);

  Serial.print("Sensor Value : ");
  Serial.print(sensorVal);
  
  float voltage = (sensorVal/1024.0)*5.0;

  Serial.print("Volts : ");
  Serial.print(voltage);
  Serial.print("Degrees C : ");

  float temperature = (voltage-.5)*100;

  Serial.println(temperature); 

  if(temperature >= baselineTemp+2 && temperature < baselineTemp+4)
  {
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
  }

  else if(temperature >= baselineTemp+4 && temperature < baselineTemp+6)
  {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
  }

  else if(temperature >= baselineTemp+6)
  {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
  }

  else if (temperature < baselineTemp && temperature >= baselineTemp-2)
  {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
  }

  else if (temperature < baselineTemp-2 && temperature >= baselineTemp-4)
  {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);
    digitalWrite(6, HIGH);
    digitalWrite(7, LOW);
  }

  else if (temperature < baselineTemp-4)
  {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, HIGH);
    digitalWrite(6, HIGH);
    digitalWrite(7, HIGH);
  }

  else
  {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
    digitalWrite(7, LOW);
  }

  delay(1);
}

Thank you very much.