Do you have appropriate pullup resistors on the I2C clock and data lines ?
I have seen values from 1.2k to 10k work to good effect. The lower the value the less susceptible the signals are to noise