ADC ENABLE AND DISABLE

Hi everyone,

I'm trying to adc pin when arduino get's awake once reading is done im putting back to sleep. But problem is first time it will read correct value but second time when adc gets on ...im getting previous value don't know why ? i'm attaching my code please go throw it. im please help me !! ty

/******************************************************************************
WATERTANK MONITORING
PUSSHING DATA USING XBEE MODULE WITH LOW_POWER MODE

FEB 19th 2018
WRITTERN BY : 
~

This sketch take the inputs from sensor and push it to gate
using XBEE rf module. This sketch allow to run in low power 
mode. 

Resources:
Wire.h (included with Arduino IDE)
SparkFunTMP102.h
  
Development environment specifics:
Arduino 1.0+
Hardware Version 13

Distributed as-is; no warranty is given.    
*********************************TEMPRATURE SENSOR***********************************/

#include <Wire.h>                    // I2c LIBRARY
#include "SparkFunTMP102.h"          // TMP102 LIBRARY
#include <EEPROM.h>

TMP102 sensor0(0x48);                // TMP102 SENSOR ADDRESS.
int POWER = 13;                      // DIGITAL PIN FOR POWRING-UP SENSOR.
int STATUS = 12;
int USRT_OFF = 0;
int BatPin = A0;

/*********************************BATTERY READ**************************************/

float vout = 0.0;
float vin = 0.0;                     
float R1 = 100000.0;                
float R2 = 10000.0;                

/*********************************PROGRAM STARTS HERE******************************/
void setup() {
    
     sensor0.begin();                 //ENABLE SENSOR.
        pinMode(POWER, OUTPUT);       //SETTING POWER PIN AS OUTPUT
        pinMode(STATUS, OUTPUT);      //SETTING POWER PIN AS OUTPUT
        pinMode(USRT_OFF, OUTPUT);    //SETTING POWER PIN AS OUTPUT
        for (int i=0; i<20; i++){     //SAVE POWER BY WRING ALL DIGITAL IO LOW
        if(i != 2)
        pinMode(i, OUTPUT);           //DIGITAL PIN 2 USING AS A EXTERNAL INTERRUPT
        pinMode(BatPin, INPUT);       //BATTERT PIN 
  }

   //SETUP WATCHDOG TIMER
  WDTCSR = (24);                      //CHANGE ENABLE AND WDE - ALSO RESET
  WDTCSR = (33);                      //PRESACLERS
  WDTCSR |= (1<<6);                   //ENABLE INTERRUPT MODE
 
  //ENABLE SLEEP
  SMCR |= (1<<2); //POWER DOWN MODE
  SMCR |= 1; //ENABLE SLEEP
  
}
/**********************************************************************************/
void loop() {  
        
     digitalWrite(POWER, HIGH);                  //TURNING ON POWER 
     digitalWrite(USRT_OFF, HIGH);               //TURNING ON POWER
       Serial.begin(9600);                       //ENABLE SERIAL COMMUNICATION FOR XBEE.
           delay(2000);                          //WAITING 2SEC TO GET DEVICE ON      
//         ReadBat();
//         delay(1000);
           ReadTemp();                                      
           delay(2000);                          //WAIT FOR 5SEC
           push();
           Serial.end();
           digitalWrite(POWER, LOW);             //TURN OFF THE POWER 
           digitalWrite(USRT_OFF, LOW);          //TURNING ON POWER
                
           
           
  
   for (int i=0; i< 1; i++){                    //SETTING WATCHDOG TIMER FOR 5MIN 
    //BOD DISABLE
    MCUCR |= (3 << 5);                           //SET BOTH BOD AND BODSE AT THE SAME TIME
    MCUCR = (MCUCR & ~(1 << 5 )) | (1 << 6);     //THEN SET BOTH THE BITS AT THE SAME TIME  
    __asm__ __volatile__("sleep");
 }  
   
}

ISR(WDT_vect){
}

void push(){
  digitalWrite(STATUS, HIGH);
  delay(50);
  digitalWrite(STATUS, LOW);
  delay(50);
  digitalWrite(STATUS, HIGH);
  delay(50);
  digitalWrite(STATUS, LOW);
  delay(50);
}

//void ReadBat(){
//   ADCSRA &= ~(0 << 7); 
//   int value = analogRead(BatPin);
//   vout = (value * 3.4) / 1024.0; 
//   vin = vout / (R2/(R1+R2)); 
//   Serial.println(vin);
//   if(vin < 3.1){
//    Serial.println("BatLow");
//   }
//   ADCSRA &= ~(1 << 7);
//}
void ReadTemp(){
   ADCSRA &= ~(0 << 7);                      //ENABLE ADC
   int temperature = sensor0.readTempC();    //READING TEMPRATURE 
   int value = analogRead(BatPin);
   vout = (value * 3.4) / 1024.0;
   vin = vout / (R2/(R1+R2));  
   Serial.println(vin);
   Serial.println(temperature);            //PUSHING TEMPRATURE DATA  
   ADCSRA &= ~(1 << 7);                    //DISABLE ADC
}

Moderator edit: code added to post for mobile users

NEW_LOWPOWER_TEMP_READ_WITH_BAT_READ.ino (3.95 KB)

ADCSRA &= ~(0 << 7);                      //ENABLE ADC

This does nothing useful; I'm sure you can figure out why.