Both provide similar functionality: Offload some crypto functions into a separate chip and secure key storage. And both can be used for secure boot (only allow signed software to boot on system).
A TPM is usually integrated into laptop computers and often can be installed into Desktop computers and servers: https://upload.wikimedia.org/wikipedia/commons/6/64/TPM_Asus.jpg
The system firmware is designed to work with the TPMs, but not with ATECC*.
ATECC* are aimed at smaller systems like your own IOT device.
Obvious differences are the size and price. ATECC* is much cheaper and much smaller than TPMs.
On the other hand, TPMs offer more storage capacity and more algorithms, e.g. RSA and other curves.
Another difference is the interface: ATECC* is accessed through i²c or swi, i.e. at most 4 wires. TPM has a lot more (see picture linked above).
Also, the ATECC* is a lot easier to deal with from a developer point of view.
So if you want to secure your laptop/desktop/server, you might want to use a TPM. If you want to secure your IOT device, the ATECC* might be better suited.