MCP3425 (ADC) problem
I figured it out and as pikafu suggested I'll answer the question. I was reading the ADC badly. The 16-bit code is read over i2c with this structure: [15...8] [7...0] [config byte]. I was using this code to read it:

ADC = (buff[0]&lt;&lt;7) + buff[1]


And obviously, as Roger Rowland helped me to notice, it's wrong. This is the correct code:

ADC = (buff[0]&lt;&lt;8) + buff[1]