01 - In a large mixing bowl, whisk together flour, granulated sugar, baking powder, salt, and ground cinnamon until evenly distributed.
02 - In a separate bowl, whisk together whole milk, eggs, melted butter, and vanilla extract until fully combined.
03 - Pour wet ingredients into the dry mixture and stir until just combined, being careful not to overmix as this will result in dense donut holes.
04 - Pour 2 inches of vegetable oil into a deep saucepan and heat to 350°F, using a thermometer to ensure accurate temperature.
05 - Using a small cookie scoop or two spoons, carefully drop tablespoon-sized portions of batter into the hot oil in batches. Fry for 2 to 3 minutes per batch, turning occasionally, until golden brown and cooked through. Avoid crowding the pan.
06 - Remove fried donut holes with a slotted spoon and transfer to a paper towel-lined plate to drain excess oil.
07 - While still warm, roll each donut hole in the cinnamon sugar mixture, coating evenly on all sides.
08 - Place chopped bittersweet chocolate and butter in a heatproof bowl. Heat heavy cream in a small saucepan until it just begins to simmer, then pour over the chocolate and butter. Allow to sit for 1 minute, then stir until smooth and glossy.
09 - Transfer warm cinnamon sugar-coated donut holes to a serving plate and accompany with the prepared chocolate dip.