Note that your x in your plot needs to be different from your x in your Manipulate slider. So calling the latter xx instead, here is a possibility for you:
Manipulate[
Plot[{f[x]}, {x, 0, 1},
Epilog -> {Text[f[xx], {xx/2, f[xx]}, {0, -1}],
Arrow[{{xx, f[xx]}, {0, f[xx]}}]}],
{{xx, .5, "X"}, 0, 1, .01},
Initialization :> {f[x_] := .5*2 x^2}
]
Also note that the way you included your definition of f in your example code is very problematic and leads to a Manipulate that is in an infinite execution loop. Define f in an Initialization option instead as above.