An entity & item tagging function would be used here along with scoreboards. How it works is like this:
Let's say you have a splash potion with no effects and an item tag of "GlowPotion". A function detects everyone holding the "GlowPotion" in their hand slot and adds the tag "HoldingGlowPotion" to the player, and removes it when not. (I forgot if potions are usable in the off-hand slot, but if they are, an off-hand slot detection may be needed here as well)
Meanwhile, a scoreboard that detects players using a splash potion is active, but instead of detecting all types of potions, it only detects players who have the tag "HoldingGlowPotion", which is only present if you're holding the "GlowPotion". So, if you use that potion, you'll get 1 point in the scoreboard.
Then, another function gives the glowing effect to everyone who has the score of 1 in the scoreboard and the tag "HoldingGlowPotion", then promptly removes your score and tag so it can be used once again and the function executed only once.