Arduino uno analog value changes when connecting current sensor

Hii all in my project i have two sensors one is temperature and another current sensor. When i am measuring both values through A0 and A1. Current sensor giving correct value but temperature sensor value fluctuating. With out current sensor it is giving correct values. My lcd also fluctuating when current sensor. Here is my sketch.

#include<LiquidCrystal.h>
#include <SoftwareSerial.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
SoftwareSerial modem(9, 10);
#define pulse 7
#define pulse1 6
float current=0;
const int currentPin = A0;
const int sensor = A1;
const unsigned long sampleTime = 100000UL;                           // sample over 100ms, it is an exact number of cycles for both 50Hz and 60Hz mains
const unsigned long numSamples = 250UL;                               // choose the number of samples to divide sampleTime exactly, but low enough for the ADC to keep up
const unsigned long sampleInterval = sampleTime/numSamples;  // the sampling interval, must be longer than then ADC conversion time
const int adc_zero = 510; 
int i,Pulse,d=0,m=0,T=0;
float one_pulse=0.3125;
void setup()
{
   lcd.begin(16,2);
 pinMode(pulse, INPUT_PULLUP);
 pinMode(pulse1, INPUT_PULLUP);
Serial.begin(9600);
pinMode(13,OUTPUT);
digitalWrite(13, HIGH);
Serial.println("Ultra Fast Acting Electronic Circuit Breaker for Overload Protection Smart Energy Meter");    //select text mode
modem.begin(9600);
lcd.setCursor(0,0);
  lcd.print("Ultra Fast Acting");
  lcd.setCursor(0,1);
  lcd.print("Switch With Meter");
  delay(10000);
}
void loop()
{

  int Pulse=0;
  float Rupee=0,Unit=0;
  while(1)
  {
        CurrentSense();
    T= (5.0 * analogRead(sensor) * 100.0) / 1024;

    lcd.clear();
      lcd.setCursor(0,0);
  lcd.print("T:    Units:");
      lcd.setCursor(0,1);
  lcd.print("Load:                 ");    
   // Serial.println(T);
lcd.setCursor(2,0);
lcd.print(T);
lcd.setCursor(12,0);
lcd.print(Unit);
lcd.setCursor(5,1);
lcd.print(current);
      d++;
   if(!digitalRead(pulse))
   {
    i++;
    Unit=one_pulse*i/1000;
    Rupee=Unit*7;
     Serial.print("Rupee: ");
 Serial.println(Rupee);
 Serial.print("pulse ");
 Serial.println(Unit);
  //  while(!digitalRead(pulse));
   }
   if(d== 24)
   {
    m++;
    d=0;
       if(m==1)                      // sending Msg after every 3 pulse
   {
    Serial.print("Rupee: ");
    Serial.println(Rupee);
    Serial.print("Unit: ");
    Serial.println(Unit);
    modem.println("AT+CMGF=1\r");
    delay(10);
    modem.println("AT+CMGS=\"\"");
    modem.println();
    modem.print("Bill Generated for your home");
    modem.println();
    modem.print("Unit: ");
    modem.print(Unit);
    modem.print(" Rupee: ");
    modem.println(Rupee);
    modem.print("\r"); 
    delay(100);//enter longitude value in msg
    modem.println((char)26);
    Serial.println("MESSAGE SENT");
   }
   }
   if(m==30)
   {
    m=0;
   }
   if (current > 0.3)
   {
    lcd.setCursor(0,1);
    lcd.print("High Load Tripped");
    digitalWrite(13, LOW);
    while(1);
   }
   if(T>100)
   {
    lcd.setCursor(0,1);
lcd.print("High Temperature");
digitalWrite(13, LOW);
    modem.println("AT+CMGF=1\r");
    delay(10);
    modem.println("AT+CMGS=\"\"");
    modem.println();
        modem.println();
    modem.print("High Temperature Detected");
    modem.print("\r"); 
    delay(100);//enter longitude value in msg
    modem.println((char)26);
    Serial.println("MESSAGE SENT");
     //while(1);
   } else {digitalWrite(13, HIGH);}
 //  delay(1000);
}
}

void CurrentSense()
{
 unsigned long currentAcc = 0;
 unsigned int count = 0;
 unsigned long prevMicros = micros() - sampleInterval ;
 while (count < numSamples)
 {
   if (micros() - prevMicros >= sampleInterval)
   {
     int adc_raw = analogRead(currentPin) - adc_zero;
     currentAcc += (unsigned long)(adc_raw * adc_raw);
     ++count;
     prevMicros += sampleInterval;
   }
 }
 
 float rms = sqrt((float)currentAcc/(float)numSamples) * (50 / 1024.0);
rms=rms-0.10;
if (rms<0.20)
{
rms=0;
}

current=rms;
}

I got motion sickness reading your code, but you could try each time you do an analogRead, do two reads of each pin, but throw away the first one, and don't use it.

Thanks mister it's working..

CtrlAltElite:
you could try each time you do an analogRead, do two reads of each pin, but throw away the first one, and don't use it.

please explain

It's a standard first-stab approach to problems like this, which could be down to big differences in source impedance matching.
Sometimes it works, sometimes not - if it doesn't work, then it's time to take a close look at the schematic and the datasheets.

T= (5.0 * analogRead(sensor) * 100.0) / 1024;

This line tells me OP is using an analogue LM35 temp sensor.
They are very inconsistent when used with LCDs (backlighting) and other things that drag down the 5volt supply of the (unknown) Arduino. The LM35 should really be used with 1.1volt Aref for stability and resolution, but you can't if you're already using another ratiometric (current) sensor.
A thermistor could have been better here. Or move to a digital temp sensor, like the DS18B20.
Leo..