Without going through your whole circuit, there is one thing I do not understand and one that I think is wrong. I dont understand what that big box with the -5 from the inverting input to ground is for.
On the output of the ADC, it seems that you are only using the bottom 4 bits of the ADC. It is an 8bit devices so your voltage steps are going to be between 5/(2^8) = 20mV (about). That means you can read up to 140mv and then you get 0. It seems what you have is a system that shows the Voltage modulo 160mV. I doubt this is what you are after.