"안다" is generally used to mean to hug or embrace, and it could be used for people, pets, familily members, or lovers while "포옹(抱擁)하다", which came from Hanja, is more like,not always ^^, "to cuddle" to show how you love sb in a romantic way or more emotional way. This phrase is often found in dramas, movies or in written.
"껴안다" has a sense of emphasizing on the act of hugging by itself to mean "to hug sb tightly".
(sb = somebody)
It would be a great idea if you remember these phrases with some related expressions.
For example,
꽉 껴안다 - to hug sb tightly (꽉 = tightly)
꽉 포옹하다(X)
꽉 안다 - acceptable.
뜨겁게 포옹하다 - in a romantic way
뜨겁게 안다 - acceptable but unnatural a bit
뜨겁게 껴안다(X)
Hug me!
날 안아줘, 날 안아줘요
날 껴안아줘(요) - unnatural
날 포옹해줘 - unnatural
I'm cold. Can't you hug me?
추운데, 나좀 안아주면 안돼? (O)
추운데, 나좀 껴안아 주면 안돼? (O)
추운데, 나좀 포옹해주면 안돼? (X)
Give your mom a hug.
너희 엄마좀 안아줘.(O)
너희 엄마좀 껴안아줘 unnatural
너희 엄마좀 포옹해줘 unnatural
I don't like hugging/hugs.
난 포옹이 싫어
난 안아주는게/안는게 싫어 acceptable.
난 껴안아 주는게 싫어(X)
Other ones to mean "to hug"
1) 얼싸안다 - when you are very happy or glad to see or hear sth.
2) 부둥켜안다 - when you are quite a bit emotional,
두사람은 부둥켜안고 울었다. They embraced each other and cried.
\^o^/