I would use the "ARENA_PREP_OPPONENT_SPECIALIZATIONS" event. There's no event that says "HEY I ZONED INTO AN ARENA" so this is the next best thing
Code:
local Frame = CreateFrame("Frame")
Frame:RegisterEvent("ARENA_PREP_OPPONENT_SPECIALIZATIONS")
Frame:SetScript("OnEvent", function(...)
--Your code goes here:
end)
This will restrict that code to only running once the Preperation buff has been applied to your character, which *should* be sufficient.
If not, you could then also check to see if the blizzard frame is up on an interval, but I think the above is sufficient.
EDIT:
This won't run code until the enemy spec has been populated, so it should almost certainly work.