Is it possible for an I2C part to change its address arbitrarily? I have an AD5175 that has three address options. Depending on the state of the ADDR pin, it can be 0x2C (connected to +5V), 0x2E (NC), or 0x2F (connected to GND). I'm using Tod Kurt's I2C sniffer program to look for the correct address and it seems to swing back and forth between 0x2E and 0x2C, for no reason. I have ADDR pin unconnected so it should be 0x2E.
I'd go for one of the connected states because they are more detectable. A dust particle may be enough to get it slightly connected and then address change. If you're not forced to use the unconnected state (because you're using 2 other chips of the same type), use either ground or VCC on that pin.
Is it possible for an I2C part to change its address arbitrarily?
Depends on the part.
There are devices that support address changes by either hardware pins (making lines HIGH/LOW) or by a software command .
The details should be described in the datasheet of the device.
Please check out this page, it tells you all you wanna know about I2C and probably more