EEPROM Interface confusion with Address?
The first byte of an I²C transaction containts the 7-bit slave address. Each slave device on the bus is supposed to have a unique address, and to answer only if its own address matches the address in that byte.

To allow multiple identical chips to be used on the same bus, some address bits are made configurable (with the Ax pins). For example, if you have two 1 Kb chips, with the A0/1/2 pins set to 0/0/0 and 1/1/1, respectively, then these two chips can be addressed with 1010000 and 1010111.

The datasheet counts bits, not bytes, to make the numbers appear larger. These chips actually can store 128/256/…/2048 bytes of data.

When a chip is larger than 256 bytes, the single address word no longer suffices to reach all bytes. So these large chips pretend to be multiple devices, each with its own slave address. For example, the 4 Kb (= 512 bytes) chip accesses the first 256 bytes when using slave address 1010xx0, and the last 256 bytes when using slave address 1010xx1 (where xx are set by the two A pins).

In general, you let the AVR hardware handle the I²C protocol details like start/stop/ACK bits; you need to care about that only when doing a software I²C implementation.