Analog read value inconsistent

Thanks for responding, here is the relevant code:

#include <Wire.h>

boolean found=false;
byte panelAddress, panelError;
byte myBytes[8];

byte negative=0x2D;
byte positive=0x2B;
byte decimal=0x2E;
byte space=0x20;
byte expoChar=0x45;

char buffer[25];
int potpin = A0;  // analog pin used to connect the potentiometer
int val;    // variable to read the value from the analog pin 
float reading;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
  Serial.println("\nI2C Panel Meter");
}


void loop()
{
  if(!found){
    findI2Cdevice();
  }else{
    val = analogRead(potpin);
    Serial.print("Analogue Pin: ");
    Serial.println(val);
    reading=convertAnalog(val);
    prepareValue(reading);

    myBytes[0]=panelAddress;
    myBytes[1]=0x00;
 
    Wire.beginTransmission(0x08);
    Wire.write(myBytes[0]);
    Wire.write(myBytes[1]);
    Wire.write(myBytes[2]);
    Wire.write(myBytes[3]);
    Wire.write(myBytes[4]);
    Wire.write(myBytes[5]);
    Wire.write(myBytes[6]);
    Wire.write(myBytes[7]);
    panelError=Wire.endTransmission(true);
    //Serial.println("");
    if(panelError!=0){
      Serial.println("Panel Error: ");
      Serial.println(panelError);
    }else{
      //Serial.print("Sent(");
      //Serial.print(String(panelAddress, HEX));
      //Serial.print(") :");
      for(int x=0;x<8;x++)
           Serial.print(myBytes[x],HEX);
       Serial.println("");
    }
   
  }
  delay(250);
}

I'm using an arduino mega 2560.