First of all declare a property of type UIPopoverController (lets say activePopover).
In the method that is called on long press do this:
if (self.activePopover != nil)
{
if (self.activePopover.popoverVisible)
[ self.activePopover dismissPopoverAnimated:YES];
self.activePopover = nil;
}
And then when you allocate the UIPopoverController on long press assign it to activePopover. This way you always dismiss a visible popover and only then present a new one.