Set up a charcoal or gas grill for indirect cooking.
Pat the pork dry with paper towels. Don’t trim any excess fat off the meat; this fat will baste the meat and keep it moist during cooking. With a pastry brush or your hands, brush or rub the pork with a thin coating of olive oil. Season generously with salt and pepper. Set the pork aside on a tray until ready to cook.
Position the pork in the center of the cooking grate, fat side up. There’s no need to turn the meat during cooking. Cook slowly with the lid closed (air vents should be open on a charcoal grill) on low heat (325° to 350°F) until an instant-read meat thermometer inserted into the middle of the pork registers 190° to 200°F, about 4 hours. The meat should be very tender and easy to pull apart. (If using a bone-in cut, you’ll be able to wiggle the bone free.)
Let the meat rest on a cutting board or clean tray until just cool enough to handle, about 20 minutes. (It will pull apart most easily while still somewhat hot.) Pull the meat from the skin, bone, and fat (use rubber food-service gloves for easiest handling). Set aside any crisp bits of fat that have completely rendered and look almost burned. (In the barbecue circuit, these crisp pieces are known as “the burnt ends” and are the most coveted part of the pork.) Working quickly, shred the chunks of meat with two forks by crossing the forks and “pulling” the meat from the roast into small pieces. Alternately, you can chop the meat with a cleaver or shred it by hand. Put the meat in a large bowl. Chop the reserved crisp bits of fat with a chef’s knife and mix them into the pulled pork. While the meat is still warm, combine with the barbecue sauce to moisten and season the meat, about 1-1/2 cups. The pork can be made in advance up to this point.
Pile the pork onto the hamburger buns. Top the pork with coleslaw and serve with more barbecue sauce on the side, if you like.
You can make the pork ahead and reheat. To reheat pulled pork, put the meat in a 9x13-inch Pyrex baking dish or disposable foil pan, moisten the meat with more barbecue sauce, and cover tightly with foil. Heat in a 250°F oven for 30 to 40 minutes, stirring occasionally. Leftovers canalso be heated in the microwave on medium in a Pyrex dish.