Surface prep is only half the battle - you also need to pick epoxy that's actually rated for garage environments, because some products are designed for showroom floors and won't hold up to oil drips, tire marks, and temperature swings. If the concrete's really stained, a two-part epoxy will give you better coverage than a one-part, but that also means more work mixing and faster drying times that you have to respect.
The honest truth is that most peeling happens when someone skips the grinding step or doesn't let the epoxy cure fully before driving on it. I'd go with something mid-range from a reputable brand rather than the cheapest option - you're looking for epoxies that specify they work on garage floors specifically, not just "concrete." Once you've ground that floor down to bare concrete, clean out all the dust with a shop vac, and follow the temperature and humidity guidelines on the can, you'll have a floor that lasts way longer than people expect.
One thing people don't always mention: if your garage has any moisture coming up through the concrete, epoxy will fail no matter what. Do a simple test first - tape a plastic sheet to a few spots and leave it overnight to see if condensation forms underneath. If you've got moisture issues, you need to handle that before you ever touch epoxy.