Check your dmesg output, that will tell you how much vram is on your card, You should see something like:
[ 1.874683] radeon 0000:00:01.0: VRAM: 512M 0x0000000000000000 - 0x000000001FFFFFFF (512M used)
[ 1.874685] radeon 0000:00:01.0: GTT: 512M 0x0000000020000000 - 0x000000003FFFFFFF
[ 1.874688] [drm] Detected VRAM RAM=512M, BAR=256M
[ 1.874689] [drm] RAM width 32bits DDR
[ 1.874807] [TTM] Zone kernel: Available graphics memory: 3829974 kiB
[ 1.874813] [TTM] Zone dma32: Available graphics memory: 2097152 kiB
[ 1.874816] [TTM] Initializing pool allocator
[ 1.874826] [TTM] Initializing DMA pool allocator
[ 1.874886] [drm] radeon: 512M of VRAM memory ready
[ 1.874891] [drm] radeon: 512M of GTT memory ready.
lspci only show the PCI apertures (BARs) which are limited to 256MB. This is the CPU's window into vram (the maximum amount of vram that can be mmaped by the CPU). It does not represent the amount of vram on the card (the GPU can access the entirety of vram). This may be what "System Profiler & Benchmark" looks at. I'm not sure what "System Profiler & Benchmark" is.
OpenGL does not provide a way to query the amount of memory available. Applications have to use use vendor specific extensions or guess based on vendor strings or pci ids. Steam probably defaults to 256MB if it can't figure out something better.