How does ASK account for attenuation?
The reason you state is why ASK with more than two levels is not often used except in controlled fixed installations.

One common way is to enforce that the maximum amplitude is sent regularly.  There are various ways to enforce this, like a fixed bit every N bits, bit stuffing, etc.  Some of these means can also provide some out of band information, like framing of bytes, packets, etc.

The receiver keeps track of the maximum amplitude recently received, and interprets the current received amplitude relative to that.