Actually no... it's not cheapest way and also not best way. It's a good way, but not best. Maybe a better alternative is a peer-to-peer transfer and buy directly from someone interested in selling (or vice-versa). However, I also can not call this as best way, as it involves some risks (you don't know who you'll met and maybe it's a thief). However, talking directly to someone and making a peer-to-peer deal would help you a lot regarding fees (meaning the price for which the counterparty will sell you BTC).
ATMs offer anonymity and anonymity has a price. Yet the price you paid is way too big. As others said already, ATM fees are usually around 10% (a bit more for selling crypto to the ATM and a bit lower than 10% for buying from it). However, in your case, the ATM robbed you, by selling you at a price with 25% higher than CoinMarketCap price! What ATM was it? What brand? Was it a cash-in / cash-put machine or cash-in only? I am asking because I also noticed in my country that cash-in only ATMs sell you BTC at prices way higher than the two-ways ATMs.
Other than that, I see there is a phone number on the ticket you presented in OP. Have you tried to dial that number and ask why was that huge price used? It's a small chance, but maybe it was an internal error of the operator...