Heat oil over medium high in a large heavy bottomed pot with a lid. Place 4-5 popcorn kernels in the pot and cover.
Once kernels begin to pop, pour the rest of the popcorn into the pot, cover the pot, and use potholders to shake the pot a couple times to distribute the kernels evenly. Remove from the heat for 30 seconds - this allows the kernels to reach the same temperature so they pop around the same time. At this point I like to start a timer for 4 minutes - once the countdown reaches 3:30, place the pot back on the heat.
When the kernels begin popping vigorously (around 2:30 on my stovetop), tilt the lid so it is slightly askew on the pot - this allows the steam to escape so your popcorn doesn't get soggy. At this point, I watch the clock and shake the pot every 10 seconds until the popping slows down. The popping itself should last 2-3 minutes - I've found on my stovetop that it finishes just as my 4 minute timer runs out.
Once the popping slows significantly, remove the pot from the heat and let rest for a moment to ensure no kernels pop out when you uncover it. Pour the popcorn into a large bowl, drizzle with the melted butter (optional), and sprinkle with salt and your toppings of choice.