I thought you wanted to just stop it going negative - anyway look at "lerp" as I think this is what you are after.
another go
basically this now takes 5% (look at global variable "gvPercentageToTakeFromReserve) of your remaining "Health left in bottle" (heal) and adds it to your hit points (Hp)
This does allow hit points to go over max hit points but then corrects in line 5 but you have still drank 5% of your remaining potion.
Another (better ?) way would be to say the bottle holds 10 gulps of potion and each gulp would heal half way between your health now and max health...
so that would become something like
if (gulps left in bottle) > 0
(my health)=(my Health)+lerp ((my health),(max Health),50)
reduce (gulps left in bottle) by 1
start some timer to allow time for potion to work
Good luck