I have faced the
EXACT same problem. I sit down at the piano and I will bash out Hungarian Rhapsody No. 2 and everyone is like

woah!!, the minute they start saying, oh can you play this piece from this movie etc. I will know how it goes, I can think of the melody but I can't put harmony and chords into it, im hopeless. So I could come up with something easy like a melody with no chords.
Maybe you could do what I have been doing. This all started with my Dad's friend visiting, he came in and I played some of the Ballade No. 1 By Chopin and he's amazed. He starts naming all these well known Australian songs, he said play them but I couldn't, because I am used to learning them from sheet music, not improvising. So he started improvising just with chords, no actual piece, He just shown me some usefull stuff with chords, so I decided to Look more into this on the net, I downloaded David Lucas Burge's Relative and perect pitch ear training supercourse exercises, I started playing hanon + czerny more, practicing my scales more and getting familiar with the key signatures so im free with the piano, if you can't play a scale good and don't know your key signatures well you will suck at improvising because playing scales lets you be free with the instrument, so you can import the scales into the music, a B flat major arpeggio. I also looked at chord charts (search in google) and I found a good site where you select your key and sclae (Csus4) it shows you on a keyboard and plays it.
By familiarising myself with these different scales, keysignatures and chords. By practicing Relative pitch, I can hear each individual tone in a chord now and sing them all, instead of a chord sounding like a big blur and just hearing the top note (which is the melody).
I also understand what im playing more when i sight ready, with the chords. To be a good improviser you MUST learn thoery, cadences, scales, key signatures alot more too.
good luck.