Several bus companies run Punta Arenas to Puerto Natales: Buses Fernandez departs 8am, 9am, 1pm, 2.30pm, 5pm, 6.30pm,8pm daily; Bus Sur departs 10am, 3pm, 5.15pm, 7pm daily; Buses Pacheco departs 7.30am, 11am, 1.30pm, 3pm, 6pm, 7.30pm daily. There is no central bus station in Punta Arenas. Buses leave from the individual bus company depots, and may then have a stop at the Punta Arenas airport on the way to Puerto Natales (Buses Fernandez does). There is no depot or desk at the airport so you cannot buy tickets there; this must be preorganized. Buying tickets before you arrive in Chile is not easy. Emails are rarely answered and a seat is not actually reserved unless paid for. We were able to get our hotel to buy and pay for our tickets for us and then reimbursed them when we arrived, however this relied on the goodwill of an owner-run hotel and may not be possible with a bigger hotel. Also if you do make a booking, reconfirm the day before to make sure your seat is held. Buses are always full in the busy summer season. Also note, since September 2013 buses arrive at a new central bus terminal in Puerto Natales although most bus company websites still say they arrive/leave at their own depots. They do not. The new terminal is 2km from downtown Puerto Natales and a 20-30 minute walk, which is not hard but make sure you have time to do it. Many people were caught out by turning up at the town address instead of the new bus terminal and had to run to catch the bus.
For Puerto Natales, Buses Gomez runs daily services at 9.45am and 4.30pm, but this ends at national park administration at Laguna Amarga and you will have to walk 6km from there to Hotel Las Torres. Hotel Las Torres will pickup in Puerto Natales and deliver right to the hotel but this will be a private transfer and likely to be expensive. EcoCamp Patagonia which is just up the road from Hotel Las Torres also do pickups in Puerto Natales for their own guests and you might ask them if they would do a transfer for you, but again this will be private and likely to be expensive.