Ok, if you are not going to reset the counter (and you can't have a negative number of coffees!), then
I would suggest using an unsigned int so that you can count from 0 to 65535 coffees!
Yes, the EEPROM.put() and EEPROM.get() functions handle the size of the data type - in this case a 16-bit integer. So in order to avoid overwriting half of the previously stored value, you need to increment the address by 2 after each EEPROM.put().
In order to find the last coffee count written before reset/power-off, you would have a simple loop in start() that increments from start of EEPROM memory (i.e. address 0) in steps of 2 all the way to the top of EEPROM memory. Read each value and compare it to the value from the previous address. If the latest value is less than the previous value, then you've found the last place you wrote to.
There will be special cases - there always are!
The first time you try this on a brand new chip that has not had anything written to the EEPROM, then all the EEPROM memory will have the same value in it. I think it's 255 (0xFF). The above test will fail. You could check for this by an EEPROM.get() of location 0 and location 2. If they are the same value (something that will not happen in your application), or the value in location 2 is not 1 more than the value in location 0, then you can assume that this is the first time the program has run and start correctly with address 0.
Another special case will be if the count goes up to the top of EEPROM so that you've written to the last pair of locations, and then there's a power cut or reset. You would need to know that address 0 was the next address to be written to. If you reach the top of EEPROM memory always satisfying the test that the value in each pair of memory locations is 1 more than the previous pair, then that will tell you that you have to start back at location 0 again.
Hope some of that makes sense!