Yeah it will be a little slow since it will readback the texture on the CPU, and do the conversion there. Plus there will be a delay from having to allocate a new resource. What you could try instead is pre-allocating a Texture2D with the size you need at startup, with the R8G8B8A8_UNORM format. Then when you need a screen shot, you could use a compute shader or full screen render pass to sample the R10G10B10 texture and write it out to the R8G8B8A8 texture. Then you could save the R8G8B8A8 without having to do any conversion on the CPU, or allocating any resources.
Sorry about delayed reply... thanks again for the tip, a fullscreen render pass did the trick and it's faster than D3DX11LoadTextureFromTexture.