You're only cooking it at one heat
If you are grilling a thick steak, be sure to set aside an area on the grill heated to a lower temperature. This is where you will finish off the steak after you get your nice sear, ensuring an even, delicate finish to your meat. If you are cooking in a pan then be sure to preheat your oven to 350 F. Get that sear on the stove and then finish cooking it in the oven.
You're not using a meat thermometer
Get a meat thermometer. Unless by chance you know when a steak is done just by touching it, as some chefs or grill masters do, don't guess, and instead aim for exact internal temps.
You're not accounting for carryover heat
With all foods, especially meat, there is carryover cooking. This means that even after you pull your steak from the grill or oven, it will continue to cook. To achieve the perfect desired temperature, pull off your steak a solid five degrees earlier and it will rest to perfection by the time you cut it. For rare, remove it at 120 degrees, medium rare at 125, medium at 130-135. “If you want it well done,” George Faison says, “just make stew instead.”