Couple of things I can see:
1) You are addressing the ADC to write data to it with Wire.beginTransmission() immediately prior to reading the data back. This is not correct, the Wire.requestFrom() function addresses the slave device for reading, so no other slave addressing is required. I suspect this is the primary cause of your problems.
///////////////////////// READ ADC /////////////////////////////////////////
Wire.beginTransmission(addr); //address ADC <-----INCORRECT, REMOVE THIS!
rc = Wire.requestFrom((int)addr, (int)2); // request 2 bytes
2) You have configured the ADC to run at just 8 samples per second (config register = 0x8100) but then you are trying to read a result back immediately after starting a conversion which is doomed to failure. You should be polling the OS bit in the config register to wait until a conversion has completed.